package model;

/**
 * @UNUSED<br>
 * <br>
 * Un {@link Emplacement} permet de faire le lien entre les {@link Mot}s
 * d'une {@link Balise} avec des informations supplémentaires tels que le
 * poids du {@link Mot} ou la position du {@link Mot} dans la {@link Balise}.
 */
public class Emplacement
{
  /** The poids. */
  private double poids;
  
  /** The position. */
  private int position;
  
  /** The balise. */
  private Balise balise;
  
  /** The mot. */
  private Mot mot;

  /**
   * Instantiates a new emplacement.
   *
   * @param poids the poids
   * @param position the position
   * @param balise the balise
   * @param mot the mot
   */
  public Emplacement(double poids, int position, Balise balise, Mot mot)
  {
    // TODO système avec une map, soit un mot qui est associé à une map de balise et de son poids OU un balise qui est associé à un map des mots et de leur poids.
    this.poids = poids;
    this.position = position;
    this.balise = balise;
    this.mot = mot;
  }

  /**
   * Gets the poids.
   *
   * @return the poids
   */
  public double getPoids()
  {
    return poids;
  }

  /**
   * Gets the position.
   *
   * @return the position
   */
  public int getPosition()
  {
    return position;
  }

  /**
   * Gets the balise.
   *
   * @return the balise
   */
  public Balise getBalise()
  {
    return balise;
  }

  /**
   * Gets the terme.
   *
   * @return the terme
   */
  public Mot getTerme()
  {
    return mot;
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public String toString()
  {
    return balise.getChemin()+balise.getNom()+"/"+mot.getValue();
  }
}
